SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[spABMOrganizacion]

@NOrg varchar(250),
@CUISE int,
@CUE int,
@TipoOrg int,
@Sistema int,
@Domicilio varchar(100),
@localidad int,
@Responsable varchar(50),
@NormaCreacion varchar(10),
@NormaBaja varchar(10),
@Email varchar(50),
@CuentaBancaria varchar(50),
@Dependencia int,
@TieneSubOrg varchar(1),
-- Parametros adicionales para SubOrganizaciones
@FechaAlta varchar(15),
@Descripcion varchar(250),
@Mnemo varchar(4),
@EsPropia varchar(1),
@Grilla int,
@Baja varchar(1),
@FechaBaja varchar(15),
@Nivel int,
@Modalidad int,
@Zona int,
-- Parametro para especifica que operacion es A=Alta, B=Baja, M=Modificacion
@ABM int,
@ID int,
@IDSUB int
AS
SET NOCOUNT ON
SET @Mnemo = RTRIM(LTRIM(@Mnemo))

declare @Falta datetime
Select @Falta = cast(@FechaAlta as datetime)
if (@FechaBaja <> 'null') begin
declare @FBaja datetime
Select @FBaja = cast(@FechaBaja as datetime)
end

if @ABM = 1 begin
BEGIN TRANSACTION
INSERT INTO tb_Organizaciones (NOMBRE, CUISE, CUE, TIPO, SISTEMA, DOMICILIO, LOCALIDAD, RESPONSABLE, NORMACREACION, NORMABAJA, CUENTABANCARIA, DEPENDENCIA,
				TIENESUBORGANIZACION, EMAIL)
VALUES (@NOrg, @CUISE, @CUE,@TipoOrg, @Sistema, @Domicilio, @localidad, @responsable,@normacreacion, @normabaja,  @CuentaBancaria, @dependencia, @TieneSubOrg, @Email)

declare @idOrganizacion int 
Select @idOrganizacion =  @@identity

INSERT INTO tb_SubOrganizaciones (ORG, DESCRIPCION, MNEMO, ESPROPIA, GRILLA, FECHAALTA, BAJA, FECHABAJA, DOMICILIO, LOCALIDAD, NIVEL,
				        MODALIDAD, ZONA, CUE)
VALUES (@idOrganizacion, 'Propia-'+@Descripcion, @Mnemo, @EsPropia, @Grilla, @FAlta, @Baja, @FBaja, @Domicilio, @Localidad, @Nivel, @Modalidad, @Zona, @CUE)

if @@Error = 0
	COMMIT TRANSACTION
else
	ROLLBACK TRANSACTION
end

if @ABM = 3 begin
BEGIN TRANSACTION
UPDATE tb_Organizaciones 
SET NOMBRE = @NOrg, CUISE = @CUISE, CUE = @CUE, TIPO = @TIPOORG, SISTEMA=@SISTEMA, 
	DOMICILIO=@DOMICILIO, LOCALIDAD=@LOCALIDAD, RESPONSABLE=@RESPONSABLE, NORMACREACION=@NORMACREACION, NORMABAJA=@NORMABAJA, CUENTABANCARIA=@CUENTABANCARIA, 
	DEPENDENCIA = @DEPENDENCIA,TIENESUBORGANIZACION=@TIENESUBORG, EMAIL=@EMAIL
WHERE IDORGANIZACIONES = @ID

UPDATE TB_SUBORGANIZACIONES
SET ORG=@ID, DESCRIPCION=@DESCRIPCION, MNEMO = @Mnemo, ESPROPIA=@ESPROPIA, GRILLA=@GRILLA, FECHAALTA=@FALTA, BAJA=@BAJA,
	 FECHABAJA=@FBAJA, DOMICILIO=@DOMICILIO, LOCALIDAD=@LOCALIDAD, NIVEL=@NIVEL,@MODALIDAD = @MODALIDAD, ZONA=@ZONA, CUE=@CUE
WHERE IDSUBORGANIZACION=@IDSUB

if @@Error = 0
	COMMIT TRANSACTION
else
	ROLLBACK TRAN
end

if @ABM = 2 begin
BEGIN TRANSACTION
DELETE TB_SUBORGANIZACIONES FROM TB_SUBORGANIZACIONES WHERE IDSUBORGANIZACION=@IDSUB
DELETE TB_ORGANIZACIONES FROM TB_ORGANIZACIONES WHERE idOrganizaciones=@id

if @@error = 0
	COMMIT TRAN
else
	ROLLBACK TRAN

end
GO
